#include <stdio.h>

// 移除指定的元素
// 这个直接用双指针法就可以解决了

int removeElement(int* nums, int numsSize, int val) 
{

    int des = 0 , src = 0 ;

    while (src < numsSize)
    {

        if (nums [src] == val)
        {

            src++ ;

            continue ;

        }

        else
        {

            if (src == des)
            {

                des++ ;

                src++ ;

            }

            else
            {

                nums [des++] = nums [src++] ;

            }

        }

    }

    return des ;
    
}

int main ()
{

    int arr [] = { 2 , 3 , 3 , 2} ;

    int val = 3 ;

    int numsSize = sizeof (arr) / sizeof (arr [0]) ;

    int size = removeElement (arr , numsSize , val) ;

    for (int i = 0 ; i < size ; i++)
    {

        printf ("%d " , arr [i]) ;

    }

    return 0 ;

}